package com.lm.scau.dyb.utils;

import android.util.SparseArray;
import android.view.View;

/**
 * ClassName: ViewHolderUtils
 *
 * @author BLOOM
 * @Function: 构建ViewHolder类，避免使用Adapter时重复定义该类
 * @date: 2015年5月15日 上午11:44:44
 */
public class ViewHolderUtils {
	/**
	 * 避免使用Adapter时重复定义ViewHolder类
	 *
	 * @param view
	 * @param id
	 * @return T 返回类型 使用通用返回类型T，避免类型转换警告
	 */
	@SuppressWarnings("unchecked")
	public static <T extends View> T get(View view, int id) {
		SparseArray<View> viewHolder = (SparseArray<View>) view.getTag();
		if (null == viewHolder) {
			viewHolder = new SparseArray<View>();
			view.setTag(viewHolder);
		}

		View childView = viewHolder.get(id);
		if (null == childView) {
			childView = view.findViewById(id);
			viewHolder.put(id, childView);
		}

		return (T) childView;
	}
}
